<!DOCTYPE html>
<html lang="en" layout:decorate="~{default/just_css_and_js}" xmlns:layout="http://www.w3.org/1999/xhtml"
      xmlns:th="http://www.w3.org/1999/xhtml">
<head>
    <link href="/css/bootstrap-datetimepicker.min.css" rel="stylesheet" media="screen">
    <style>
        /*加红加粗的字*/
        .red_and_bold {
            color: red;
            font-weight: bolder;
        }

        /*带圈的数字的样式*/
        .circle_for_number {
            width: 20px;
            height: 20px;
            background-color: red;
            border-radius: 25px;
            float: left;
            margin-right: 10px
        }

        .number_in_circle {
            height: 13px;
            line-height: 20px;
            display: block;
            color: #FFF;
            text-align: center
        }

        /*这个页面上的表格的样式*/
        .th-inner {
            height: 20px;
            line-height: 20px;
            font-size: 13px;
            padding: 0 !important;
            /* background-image: none; */
            background-color: white;
            border: 0 !important;
        }

        table {
            border: 0 !important;
        }

        tr {
            border: 0 !important;
        }

        /*实时监控 实时概况*/
        fieldset.col-xs-7 span.col-sm-2 {
            padding: 5px 0 0 5px;
        }

        fieldset.col-xs-7 span.col-sm-2 span.col-sm-8 {
            padding: 0;
        }

        /*实时监控 电池包总览 行转列只能用div做了*/
        .div-like-form .div-left div { /*每一列的div的属性*/
            padding: 5px 15px;
        }

        .div-like-form .div-left { /*每一列的属性*/
            float: left;
            text-align: center;
        }

        .div-like-form .div-left .name { /*名称栏变成灰色*/
            background-color: #c2c2c2;
        }

        .div-like-form .div-left img { /*首行图片格式*/
            max-height: 50px;
            margin: 5px auto
        }

    </style>
    <script src="/js/echarts.min.js"></script>
    <!-- datepicker 时间选择器 -->
    <script src="/js/bootstrap-datetimepicker.min.js"></script>
    <script src="/js/bootstrap-datetimepicker.zh-CN.js"></script>
    <script>
        /**
         * 限制开始时间和结束时间不能互相超过
         */
        $(function () {
            $("#start_time_select").datetimepicker({
                bootcssVer: 3,   //设置读取bootstrap3，否则默认读取bootstrap2，左右箭头会不见
                startView: 2,
                format: "yyyy-mm-dd",
                minView: "month",
                todayBtn: "linked",
                todayHighlight: true,
                language: "zh-CN",
                showMeridian: true,
                autoclose: true,
                endDate: new Date()
            }).on('changeDate', function (ev) {
                var starttime = $("#start_time_select").val();
                $("#end_time_select").datetimepicker('setStartDate', starttime);
                change_data_type_of_date();
            });

            $("#end_time_select").datetimepicker({
                bootcssVer: 3,   //设置读取bootstrap3，否则默认读取bootstrap2，左右箭头会不见
                startView: 2,
                format: "yyyy-mm-dd",
                minView: "month",
                todayBtn: "linked",
                todayHighlight: true,
                language: "zh-CN",
                autoclose: true,
                showMeridian: true,
                endDate: new Date()
            }).on('changeDate', function (ev) {
                var endtime = $("#end_time_select").val();
                $("#start_time_select").datetimepicker('setEndDate', endtime);
                change_data_type_of_date();
            });

            $("#system_start_time").datetimepicker({
                bootcssVer: 3,   //设置读取bootstrap3，否则默认读取bootstrap2，左右箭头会不见
                startView: 2,
                format: "yyyy-mm-dd",
                minView: "month",
                todayBtn: "linked",
                todayHighlight: true,
                language: "zh-CN",
                autoclose: true,
                showMeridian: true
            })
        });

        /**
         * 根据自定义的天数决定是否显示小时
         */
        function change_data_type_of_date() {
            var starttime = $("#start_time_select").val();
            var endtime = $("#end_time_select").val();
            $("#data_freque").empty();
            var str = "";
            var cha = GetDateDiff(starttime, endtime);
            if (cha > 8) {
                str = '<button type="button" class="btn btn-choose-red active">日</button>';
            } else {
                str = '<button type="button" class="btn btn-choose-red active">日</button><button type="button" class="btn btn-choose-red">小时</button>';
            }
            $("#data_freque").prepend(str);
            change_data_type($(this));
            $('#data_freque button').click(function (e) {
                change_data_type($(this));
            });
        }

        /**
         * 计算两个日期之间的相距天数
         */
        function GetDateDiff(starttime, endtime) {
            var startTime = new Date(Date.parse(starttime.replace(/-/g, "/"))).getTime();
            var endTime = new Date(Date.parse(endtime.replace(/-/g, "/"))).getTime();
            var dates = Math.abs((startTime - endTime)) / (1000 * 60 * 60 * 24);
            return dates;
        }
    </script>
    <!--定死数据的js-->
    <script>
        /**
         * 历史查询中的button
         */
        var str_1 =
            '<button type="button" class="btn btn-choose-red active" name="replace_name" value="replace_value">replace_this</button>';
        var str_other =
            '<button type="button" class="btn btn-choose-red" name="replace_name" value="replace_value">replace_this</button>';

        /**
         * 点击切换tab页面
         */
        function changeTab(e) {
            // 1. 切换活跃状态
            $(e).parent().siblings().removeClass("active");
            $(e).parent().addClass("active");
            // 2. 根据id显示页面
            var id = $(e).attr("id").replace("title", "step");
            $("#" + id).siblings().hide();
            $("#" + id).show();
//            if (id == "default-step-0"){
//                interval = setInterval("refresh()", 10000);
//            } else {
//                clearInterval(interval);
//            }
        }

        //        /**
        //         * 定时任务
        //         */
        //        var interval;
        //        function refresh(){
        //            var frame = window.parent.document.getElementById("iframe");
        //            var path = frame.getAttribute("src");
        //            frame.setAttribute("src", path);
        //        }

        /**
         * 故障信息 中的 详细
         */
        function goToDetailPage() {
            // TODO 跳转到 报警管理 > 大厦名称 的页面
            window.parent.location.href = "/alarm/alarm_list";
        }

        /**
         * 实时数据 中的 故障信息 中的 表格的table字段格式
         */
        var error_data_format = [
            {
                title: "",
                formatter: function (value, row, index) {
                    return index + 1; // 第一行自然排序
                }
            },
            {
                field: 'equipmentName',
                title: '设备'
            },
            {
                field: 'alarmContent',
                title: '故障名称'
            },
            {
                field: 'source',
                title: '故障类型'
            },
            {
                field: 'operateTime',
                title: '发生时间',
                formatter: function (value, row, index) {
                    return formatTimeStrap(value);
                }
            }
        ];

        /**
         * 初始化table
         */
        window.onload = function () {
            $("#error_data").bootstrapTable({
                queryParamsType: "undefined",
                columns: error_data_format,
                url: "/monitor/error_data?id=" + $("#id").val()
            });
        };

        /**
         * 初始化页面
         */
        $(function () {
            /**
             * 除了第一个其他的页面都不显示
             */
            $("#default-step-0").show().siblings().hide();
            $("#time_select").hide();
            /**
             * 按钮点击事件
             */
            button_click();
            /**
             * 更改 实时监控 电池包总览 的 宽度
             */
            change_model_monitor_div_width();
            /**
             * 绑定台账信息的修改页面的input框的样式修改
             */
            input_on_focus();
            //定时任务
            //interval = setInterval("refresh()", 10000);
        });

        /**
         * 更改 实时监控 电池包总览 的 宽度
         */
        function change_model_monitor_div_width() {
            var father_width = $(".div-like-form").width();
            var first_width = $(".div-left:first").width();
            var size = $(".div-like-form .div-left").size() - 1;
            var width = 150;
            if (size <= 5) {
                width = (father_width - first_width) / size - 1;
                $(".div-like-form .div-left").each(function (index) {
                    if (index != 0) {
                        $(this).css("width", width);
                    }
                });
            } else {
                $(".div-like-form .div-left").each(function (index) {
                    if (index != 0) {
                        $(this).css("width", width);
                    }
                });
            }
            $(".div-like-form").css("width", width * size + first_width);
            $("#package_info").css("width", width * size);
        }

        /**
         * 历史数据 按钮点击事件
         * 这边还是写个逻辑吧：
         * 点击 测点类别 -> 更改 测点名称 -> 发送请求更改显示图表
         * 点击 测点名称 -> 发送请求更改显示图表
         * 点击 时间范围 -> 更改 显示密度 -> 更改 显示类别 -> 发送请求更改显示图表
         * 点击 显示密度 -> 更改 显示类别 -> 发送请求更改显示图表
         * 点击 显示类别 -> 发送请求更改显示图表
         */
        function button_click() {
            /**
             * 点击 测点类别 -> 更改 测点名称 -> 发送请求更改显示图表
             */
            $('button[name="objType"]').click(function (e) {
                change_test_name($(this));
            });
            /**
             * 点击 测点名称 -> 发送请求更改显示图表
             * 1. 更改按钮显示
             * 2. 发送请求更改显示图表
             */
            $('button[name="name"]').click(function (e) {
                $(this).addClass('active').siblings().removeClass('active');
                // 发送请求更改图表
                btn_choose_red();
            });
            /**
             * 点击 时间范围 -> 更改 显示密度 -> 更改 显示类别 -> 发送请求更改显示图表
             */
            $('button[name="ranges"]').click(function (e) {
                change_data_freque($(this));
            });
            /**
             * 点击 显示密度 -> 更改 显示类别 -> 发送请求更改显示图表
             */
            $('button[name="freque"]').click(function (e) {
                change_data_type($(this));
            });
            /**
             * 点击 显示类别 -> 发送请求更改显示图表
             * 1. 更改按钮显示
             * 2. 发送请求更改显示图表
             */
            $('button[name="show_type"]').click(function (e) {
                $(this).addClass('active').siblings().removeClass('active');
                // 发送请求更改图表
                btn_choose_red();
            });
        }

        /**
         * 点击 测点类别 -> 更改 测点名称 -> 发送请求更改显示图表
         * 1. 更改 测点名称
         *      1)  更改按钮显示
         *      2)  更改测点名称
         *      3)  绑定测点名称单击事件
         * 2. 发送请求更改显示图表
         */
        function change_test_name(button) {
            // 1)  更改按钮显示
            $(button).addClass('active').siblings().removeClass('active');
            // 2)  更改测点名称
            var text = $(button).text();
            $("#history_name").empty();
            var str = "";
            switch (text) {
                case "能量":
                    str = str_1.replace("replace_this", "充电量")
                            .replace("replace_value", "充电量")
                            .replace("replace_name", "name")
                        + str_other.replace("replace_this", "放电量")
                            .replace("replace_value", "放电量")
                            .replace("replace_name", "name");
                    break;
                case "电费":
                    str = str_1.replace("replace_this", "AB线电压").replace("replace_value", "AB线电压").replace("replace_name", "name")
                        + str_other.replace("replace_this", "BC线电压").replace("replace_value", "BC线电压").replace("replace_name", "name")
                        + str_other.replace("replace_this", "CA线电压").replace("replace_value", "CA线电压").replace("replace_name", "name")
                        + str_other.replace("replace_this", "直流母线电压").replace("replace_value", "直流母线电压").replace("replace_name", "name");

                    break;
                case "效率":
                    str = str_1.replace("replace_this", "A相电流").replace("replace_value", "A相电流").replace("replace_name", "name")
                        + str_other.replace("replace_this", "B相电流").replace("replace_value", "B相电流").replace("replace_name", "name")
                        + str_other.replace("replace_this", "C相电流").replace("replace_value", "C相电流").replace("replace_name", "name")
                        + str_other.replace("replace_this", "直流母线电流").replace("replace_value", "直流母线电流").replace("replace_name", "name");
                    break;
            }
            $("#history_name").prepend(str);
            // 3)  绑定测点名称单击事件
            $('button[name="name"]').click(function (e) {
                /**
                 * 点击 测点名称 -> 发送请求更改显示图表
                 * 1. 更改按钮显示
                 * 2. 发送请求更改显示图表
                 */
                $(this).addClass('active').siblings().removeClass('active');
                // 发送请求更改图表
                btn_choose_red();
            });
            // 2. 发送请求更改显示图表
            btn_choose_red();
        }

        /**
         * 点击 时间范围 -> 更改 显示密度 -> 更改 显示类别 -> 发送请求更改显示图表
         * 1. 更改 显示密度
         *      1)  更改按钮显示
         *      2)  更改显示密度
         *      3)  绑定显示密度单击事件
         * 2. 更改 显示类别 -> 发送请求更改显示图表
         */
        function change_data_freque(button) {
            // 1)  更改按钮显示
            $(button).addClass('active').siblings().removeClass('active');
            // 2)  更改显示密度
            var text = $(button).text();
            $("#history_freque").empty();
            var str = "";
            switch (text) {
                case "日":
                    str = str_1.replace("replace_this", "小时").replace("replace_name", "freque").replace("replace_value", "hour")
                        + str_other.replace("replace_this", "15分钟").replace("replace_name", "freque").replace("replace_value", "15");
                    $("#time_select").hide();
                    break;
                case "周":
                    str = str_1.replace("replace_this", "日").replace("replace_name", "freque").replace("replace_value", "day")
                        + str_other.replace("replace_this", "小时").replace("replace_name", "freque").replace("replace_value", "hour");
                    $("#time_select").hide();
                    break;
                case "月":
                    str = str_1.replace("replace_this", "日").replace("replace_name", "freque").replace("replace_value", "day");
                    $("#time_select").hide();
                    break;
                case "年":
                    str = str_1.replace("replace_this", "月").replace("replace_name", "freque").replace("replace_value", "month");
                    $("#time_select").hide();
                    break;
                case "自定义":
                    str = str_1.replace("replace_this", "日").replace("replace_name", "freque").replace("replace_value", "day")
                        + str_other.replace("replace_this", "小时").replace("replace_name", "freque").replace("replace_value", "hour");
                    $("#time_select").show();
                    break;
            }
            $("#history_freque").prepend(str);
            // 3)  绑定显示密度单击事件
            $('button[name="freque"]').click(function (e) {
                /**
                 * 点击 显示密度 -> 更改 显示类别 -> 发送请求更改显示图表
                 */
                change_data_type($(this));
            });
            // 2. 更改 显示类别 -> 发送请求更改显示图表
            change_data_type($(this));
        }

        /**
         * 点击 显示密度 -> 更改 显示类别 -> 发送请求更改显示图表
         * 1. 更改 显示类别
         *      1)  更改按钮显示
         *      2)  更改显示类别
         *      3)  绑定显示类别单击事件
         * 2. 发送请求更改显示图表
         */
        function change_data_type(button) {
            // 1)  更改按钮显示
            $(button).addClass('active').siblings().removeClass('active');
            // 2)  更改显示类别
            var text = $(button).text();
            if (text == '15分钟') {
                //$("#history_show_type").empty();
                //$("#history_show_type").prepend(str_1.replace("replace_this", "瞬态值").replace("replace_name", "show_type").replace("replace_value", "now"));
            } else {
                if ($("#history_show_type").children().size() != 3) {
                    var str = str_1.replace("replace_this", "平均值").replace("replace_name", "show_type").replace("replace_value", "avg")
                        + str_other.replace("replace_this", "最大值").replace("replace_name", "show_type").replace("replace_value", "max")
                        + str_other.replace("replace_this", "最小值").replace("replace_name", "show_type").replace("replace_value", "min");
                    $("#history_show_type").empty();
                    $("#history_show_type").prepend(str);
                }
            }
            // 3)  绑定显示类别单击事件
            $('button[name="show_type"]').click(function (e) {
                /**
                 * 点击 显示类别 -> 发送请求更改显示图表
                 * 1. 更改按钮显示
                 * 2. 发送请求更改显示图表
                 */
                $(this).addClass('active').siblings().removeClass('active');
                // 发送请求更改图表
                btn_choose_red();
            });
            // 2. 发送请求更改显示图表
            btn_choose_red();
        }

        /**
         * 发送请求更改显示图表
         * 1. 预设图表
         * 2. 获取请求数据
         * 3. 发送请求并获取返回值设置图表
         */
        function btn_choose_red() {
            // 1. 获取请求数据
            var objType, name, ranges, freque, show_type, start_time = null, end_time = null;
            $("button.active").each(function (i, v) {
                var title = $(v).attr("name");
                switch (title) {
                    case "objType":
                        objType = $(v).val();
                        break;
                    case "name":
                        name = $(v).val();
                        break;
                    case "ranges":
                        ranges = $(v).val();
                        break;
                    case "freque":
                        freque = $(v).val();
                        break;
                    case "show_type":
                        show_type = $(v).val();
                        break;
                }
            });
            if (ranges == "custom") {
                start_time = $("#start_time").val();
                if (start_time == "") {
                    return false;
                }
                end_time = $("#end_time").val();
                if (end_time == "") {
                    return false;
                }
            }
            // 2. 预设图表
            var history = echarts.init(document.getElementById('search_history'));
            // 3. 发送请求并获取返回值设置图表
            $.post("/monitor/history_data_equipment", {
                    id: $("#id").val(),
                    objType: objType,
                    name: name,
                    ranges: ranges,
                    freque: freque,
                    show_type: show_type,
                    start_time: start_time,
                    end_time: end_time,
                    type: "block"
                }, function (json) {

                    var options = {
                        title: {                // 标题
                            left: 'center',
                            top: '3%',
                            text: json.title
                        },
                        tooltip: {              // 提示框组件
                            trigger: 'axis'     // 触发类型 axis坐标轴触发
                        },
                        legend: {               // 图例
                            data: [],
                            x: 'center',        //中间
                            y: 'bottom'         //下方
                        },
                        toolbox: {              // 工具栏
                            show: true,
                            top: '3%',
                            feature: {
                                dataView: {readOnly: false},        //数据视图
                                magicType: {type: ['line', 'bar']}, //变换类型
                                restore: {},                        //刷新
                                saveAsImage: {}                     //保存图片
                            }
                        },
                        xAxis: {                // x轴
                            type: 'category',
                            boundaryGap: false,  //坐标轴两边留白，如果是false就是0点在y轴上
                            data: Object.keys(json).filter(function (key) {
                                return key !== "title";

                            }).sort()
                        },
                        yAxis: [
                            {
                                type: 'value',
                                boundaryGap: true
                            }
                        ],
                        series: [
                            {
                                name: name,
                                type: 'line',
                                data: Object.keys(json).filter(function (key) {
                                    return key !== "title";

                                }).sort().map(function (key) {
                                    return json[key];
                                })
                            }
                        ]
                    };
                    // 2. 如果有值的话就放进去
                    history.setOption(options);
                }
            );
        }

        /**
         * 显示类别
         */
        $('#data_type button').click(function (e) {
            $(this).addClass('active').siblings().removeClass('active');
        });

        /**
         * 绑定台账信息的修改页面的input框的样式修改
         */
        function input_on_focus() {
            $("#save_change").hide();
            $("#default-step-2").find("input").on("click", function () {
                $("#default-step-2").find("input").css({
                    "border": "1px solid #b5b5b5",
                    "padding": "6px",
                    "margin-top": "3px",
                    "margin-bottom": "3px",
                });
            });
            $("#default-step-2").find("input").on("change", function () {
                $("#save_change").show();
            });
        }
    </script>
    <!--刷新操作的js-->

    <!--图表-->
    <script>
        /**
         * 图表
         */
        $(function () {
            /**
             * 历史数据中的图表
             */
            $("#search_history").css("width", $("#default-step-0").width());
            btn_choose_red();
            /**
             * 实时监控 中的 今日充放电量、电费曲线
             */
            show_today_electricity();
        });

        /**
         * 实时监控 中的 今日充放电量、电费曲线
         */
        function show_today_electricity() {
            var today_electricity = echarts.init(document.getElementById('today_electricity'));
            today_electricity.setOption({
                title: {                // 标题
                    left: 'center',
                    text: '今日充放电量、电费曲线',
                    textStyle: {
                        fontStyle: 'italic',
                    }
                },
                grid: {                 // 设置边距
                    left: '0%',
                    right: '0%',
                    bottom: '10%',
                    containLabel: true  // 是否包含显示的刻度
                },
                tooltip: {              // 提示框组件
                    trigger: 'axis'     // 触发类型 axis坐标轴触发
                },
                legend: {   // 图例
                    show: true,     //默认 true
                    data: ["今日充电量", "今日放电量", "省电费", "耗电费"],
                    x: 'center',
                    y: 'bottom'
                },
                toolbox: {              // 工具栏
                    show: true,
                    feature: {
                        dataView: {readOnly: false},        //数据视图
                        magicType: {type: ['line', 'bar']}, //变换类型
                        restore: {},                        //刷新
                        saveAsImage: {}                     //保存图片
                    }
                },
                xAxis: {                // x轴
                    type: 'category',
                    boundaryGap: true,  //坐标轴两边留白，如果是false就是0点在y轴上
                    axisLabel: {
                        formatter: function (data) {
                            return data.split(" ")[1];
                        }
                    }
                },
                yAxis: [
                    {

                        name: '单位(kWh)',
                        type: 'value'
                    },
                    {
                        name: '节省电量：元',
                        type: 'value',
                        splitLine: {        // 刻度线
                            show: false     // 是否显示刻度线
                        }
                    }
                ],
                series: [
                    {
                        name: '今日充电量',
                        type: 'line',
                        data: [],
                        itemStyle: {
                            normal: {
                                color: "#990066",
                                lineStyle: {
                                    color: "#990066"
                                }
                            }
                        }
                    },
                    {
                        name: '今日放电量',
                        type: 'line',
                        data: [],
                        itemStyle: {
                            normal: {
                                color: "#FFCC00",
                                lineStyle: {
                                    color: "#FFCC00"
                                }
                            }
                        }
                    },
                    {
                        name: '耗电费',
                        type: 'bar',
                        yAxisIndex: 1,  //使用第二个Y轴
                        data: [],
                        itemStyle: {
                            normal: {
                                color: "#CC0033",
                                lineStyle: {
                                    color: "#CC0033"
                                }
                            }
                        }
                    },
                    {
                        name: '省电费',
                        type: 'bar',
                        yAxisIndex: 1,  //使用第二个Y轴
                        data: [],
                        itemStyle: {
                            normal: {
                                color: "#CCCC00",
                                lineStyle: {
                                    color: "#CCCC00"
                                }
                            }
                        }
                    }
                ]
            });
            today_electricity.showLoading();
            $.post("/monitor/today_electricity",
                {
                    id: $("#id").val()
                },
                function (map) {
                    today_electricity.hideLoading();
                    // 填入数据
                    today_electricity.setOption({
                        xAxis: {
                            data: Object.keys(map.x).sort()
                        },
                        series: [
                            {
                                name: '今日充电量',
                                data: Object.keys(map.x).sort().map(function (key) {
                                    return map.charge[key];
                                })
                            }, {
                                name: '今日放电量',
                                data: Object.keys(map.x).sort().map(function (key) {
                                    return map.discharge[key];
                                })
                            }, {
                                name: '耗电费',
                                type: 'bar',
                                yAxisIndex: 1,
                                data: Object.keys(map.x).sort().map(function (key) {
                                    return map.dischargePrice[key];
                                })
                            }, {
                                name: '省电费',
                                type: 'bar',
                                yAxisIndex: 1,
                                data: Object.keys(map.x).sort().map(function (key) {
                                    return map.sdf[key];
                                })
                            }
                        ]
                    });
                });
        }

    </script>
</head>
<body>
<div layout:fragment="content">
    <div class="main-content-inner">
        <input type="hidden" id="id" th:value="${id}">
        <!--面包屑导航栏-->
        <ul class="breadcrumb">
            <li>
                <a href="#">系统监控</a>
            </li>
            <li class="active" th:text="${projectManage.name}"></li>
        </ul>
        <!-- 标题tab -->
        <ul class="nav nav-tabs">
            <li role="presentation" class="active"><a href="#" onclick="changeTab(this)" id="default-title-0">实时数据</a>
            </li>
            <li role="presentation"><a href="#" onclick="changeTab(this)" id="default-title-1">历史数据</a></li>
            <li role="presentation"><a href="#" onclick="changeTab(this)" id="default-title-2">设备台帐</a></li>
        </ul>
        <!-- 内容显示 -->

        <div>
            <!--实时监控-->
            <form id="default-step-0" class="container-fluid">
                <!--实施概况-->
                <fieldset class="col-xs-7" style="margin-right: 10px;">
                    <legend>实时概况</legend>
                    <div style="height: 115px; overflow-x: auto">
                        <div class="col-sm-6" th:each="parameter : ${parameterInfoList}">
                            <label class="col-sm-5" th:text="${parameter.name}"></label>
                            <span class="col-sm-5"
                                  th:text="${parameter.value==null?'暂无数据':#numbers.formatDecimal({parameter.value}, 1, 2)}">
                            </span>
                            <span class="col-sm-2" th:text="${parameter.unit}"></span>
                        </div>
                    </div>
                </fieldset>
                <!--故障信息-->
                <fieldset style="height: 160px">
                    <legend>故障信息</legend>
                    <div class="col-sm-2" style="width: 22%">
                        <div class="circle_for_number">
                            <span class="number_in_circle" th:text="${level.level4}"></span>
                        </div>
                        四级
                    </div>
                    <div class="col-sm-2" style="width: 22%">
                        <div class="circle_for_number" style="background-color: #CC9966">
                            <span class="number_in_circle" th:text="${level.level3}"></span>
                        </div>
                        三级
                    </div>
                    <div class="col-sm-2" style="width: 22%">
                        <div class="circle_for_number" style="background-color: #3300FF">
                            <span class="number_in_circle" th:text="${level.level2}"></span>
                        </div>
                        二级
                    </div>
                    <div class="col-sm-2" style="width: 22%">
                        <div class="circle_for_number" style="background-color: #33CCFF">
                            <span class="number_in_circle" th:text="${level.level1}"></span>
                        </div>
                        一级
                    </div>
                    <a href="javascript:;" onclick="goToDetailPage()">详细</a>
                    <div style="margin-top: 10px;overflow-x: hidden;height: 80px;">
                        <table id="error_data" class="table table-condensed">
                        </table>
                    </div>
                </fieldset>
                <!--今日放电量、电费曲线-->
                <div id="today_electricity" style="width: 100%;height:400px;margin-top: 10px"></div>
                <!--电池包总览-->
                <fieldset>
                    <legend>电池包总览</legend>
                    <div style="overflow-x: auto;height: 500px">
                        <!--表格-->
                        <div class="div-like-form" style="width: 100%;">
                            <div class="div-left" style="width: 190px">
                                <div>电池包名称</div>
                                <div>电压(V)</div>
                                <div>电流(A)</div>
                                <div>SOC(%)</div>
                                <div>
                                    <p style="color: red">单体电压极值和极差(V)</p>
                                    <p style="color: blue">单体温度极值和极差(℃)</p>
                                </div>
                            </div>
                            <div th:each="object,stat:${equipmentManageList}">
                                <div class="div-left">
                                    <div class="name" th:text="${object.name}"></div>
                                    <div th:text="${#numbers.formatDecimal({object.BatVoltage}, 1, 2)}"></div>
                                    <div th:text="${#numbers.formatDecimal({object.BatCurrent}, 1, 2)}"></div>
                                    <div th:text="${#numbers.formatDecimal({object.BatSoc}, 1, 2)}"></div>
                                </div>
                                <!--柱状图-->
                                <div th:id="'package_info_'+${stat.index}" style="width:1024px; height: 300px;"></div>
                            </div>
                        </div>
                    </div>
                </fieldset>
            </form>
            <!--历史查询-->
            <div id="default-step-1">
                <form style="margin-top: 10px" class="col-sm-12">
                    <div>
                        <label style="margin-right: 15px">测点类别</label>
                        <div class="btn-group btn-group-sm">
                            <button type="button" class="btn btn-choose-red active" name="objType" value="2">能量</button>
                            <button type="button" class="btn btn-choose-red" name="objType" value="1">电费</button>
                            <button type="button" class="btn btn-choose-red" name="objType" value="3">效率</button>
                        </div>
                    </div>
                    <div>
                        <label style="margin-right: 15px">测点名称</label>
                        <div id="history_name" class="btn-group btn-group-sm">
                            <button type="button" class="btn btn-choose-red active" name="name" value="充电量">充电量
                            </button>
                            <button type="button" class="btn btn-choose-red" name="name" value="放电量">放电量</button>
                        </div>
                    </div>
                    <div>
                        <label style="margin-right: 15px">时间范围</label>
                        <div class="btn-group btn-group-sm">
                            <button type="button" class="btn btn-choose-red active" name="ranges" value="day">日</button>
                            <button type="button" class="btn btn-choose-red" name="ranges" value="week">周</button>
                            <button type="button" class="btn btn-choose-red" name="ranges" value="month">月</button>
                            <button type="button" class="btn btn-choose-red" name="ranges" value="year">年</button>
                            <button type="button" class="btn btn-choose-red" name="ranges" value="custom">自定义</button>
                            <div style="display: inline-block" id="time_select">
                                <input class="form_date"
                                       style="height: 30px; background-color: white !important; border-radius: 5px !important"
                                       type="text" placeholder="开始时间"
                                       id="start_time_select" data-link-field="start_time" data-link-format="yyyy-mm-dd"
                                       readonly>
                                <span>至</span>
                                <input class="form_date"
                                       style="height: 30px; background-color: white !important; border-radius: 5px !important"
                                       type="text" placeholder="结束时间"
                                       id="end_time_select" data-link-field="end_time" data-link-format="yyyy-mm-dd"
                                       readonly>
                                <input type="hidden" id="start_time" name="start_time">
                                <input type="hidden" id="end_time" name="end_time">
                            </div>
                        </div>
                    </div>
                    <div>
                        <label style="margin-right: 15px">显示密度</label>
                        <div id="history_freque" class="btn-group btn-group-sm">
                            <button type="button" class="btn btn-choose-red active" name="freque" value="hour">小时
                            </button>
                            <button type="button" class="btn btn-choose-red" name="freque" value="15">15分钟</button>
                        </div>
                    </div>
                    <div>
                        <label style="margin-right: 15px">显示类别</label>
                        <div id="history_show_type" class="btn-group btn-group-sm">
                            <button type="button" class="btn btn-choose-red active" name="show_type" value="avg">平均值
                            </button>
                            <button type="button" class="btn btn-choose-red" name="show_type" value="min">最小值</button>
                            <button type="button" class="btn btn-choose-red" name="show_type" value="max">最大值</button>
                        </div>
                    </div>
                </form>
                <div id="search_history" class="col-sm-12"
                     style="height: 400px; margin-top: 10px; border-top: 1px solid #C5D0DC;"></div>
            </div>
            <!--台帐信息-->
            <form id="default-step-2" class="container-fluid">
                <!--项目信息-->
                <fieldset class="col-xs-6" style="margin-right: 10px;">
                    <legend>项目信息</legend>
                    <div th:each="accountProperty : ${accountPropertyListForProject}" class="col-sm-12">
                        <label class="col-sm-6" th:text="${accountProperty.name}"
                               th:if="${accountProperty.propertyType != 5}" th:id="${accountProperty.id}"></label>
                        <label class="col-sm-6" th:text="${accountProperty.name}"
                               th:if="${accountProperty.propertyType == 5}"
                               th:id="${'file' + accountProperty.id}"></label>
                        <!-- 整型 -->
                        <input class="col-sm-6" type="number" th:name="${accountProperty.id}"
                               th:value="${accountProperty.value}" th:if="${accountProperty.propertyType == 1}"
                               th:readonly="${accountProperty.isModify == 0 && accountProperty.value!= null}">
                        <!-- 浮点 -->
                        <input class="col-sm-6" type="number" step="0.01" th:name="${accountProperty.id}"
                               th:value="${accountProperty.value==null?'':accountProperty.value}"
                               th:if="${accountProperty.propertyType == 2}"
                               th:readonly="${accountProperty.isModify == 0 && accountProperty.value!= null}">
                        <!-- 字符 -->
                        <input class="col-sm-6" type="text" th:name="${accountProperty.id}"
                               th:value="${accountProperty.value}" th:if="${accountProperty.propertyType == 3}"
                               th:readonly="${accountProperty.isModify == 0 && accountProperty.value!= null}">
                        <!-- 日期 -->
                        <input class="col-sm-6" type="date" th:name="${accountProperty.id}"
                               th:value="${accountProperty.value}" th:if="${accountProperty.propertyType == 4}"
                               th:readonly="${accountProperty.isModify == 0 && accountProperty.value!= null}">
                        <!-- 图片 -->
                        <input class="col-sm-6" type="file" th:name="${accountProperty.id}" multiple="multiple"
                               th:value="${accountProperty.value}" th:if="${accountProperty.propertyType == 5}"
                               th:readonly="${accountProperty.isModify == 0 && accountProperty.value!= null}">
                    </div>

                </fieldset>
                <!--分时电价表-->
                <fieldset class="col-xs-6" style="margin-right: 10px;">
                    <legend>分时电价表</legend>
                    <!--<div style="margin-top: 10px;">-->
                    <!--<table id="tuo_electricity_pricing" class="table table-condensed">-->
                    <!--</table>-->
                    <!--</div>-->
                    <div th:each="accountProperty : ${accountPropertyListForElectric}" class="col-sm-12">
                        <label class="col-sm-6" th:text="${accountProperty.name}"
                               th:if="${accountProperty.propertyType != 5}" th:id="${accountProperty.id}"></label>
                        <label class="col-sm-6" th:text="${accountProperty.name}"
                               th:if="${accountProperty.propertyType == 5}"
                               th:id="${'file' + accountProperty.id}"></label>
                        <!-- 整型 -->
                        <input class="col-sm-6" type="number" th:name="${accountProperty.id}"
                               th:value="${accountProperty.value}" th:if="${accountProperty.propertyType == 1}"
                               th:readonly="${accountProperty.isModify == 0 && accountProperty.value!= null}">
                        <!-- 浮点 -->
                        <input class="col-sm-6" type="number" step="0.01" th:name="${accountProperty.id}"
                               th:value="${accountProperty.value==null?'':accountProperty.value}"
                               th:if="${accountProperty.propertyType == 2}"
                               th:readonly="${accountProperty.isModify == 0 && accountProperty.value!= null}">
                        <!-- 字符 -->
                        <input class="col-sm-6" type="text" th:name="${accountProperty.id}"
                               th:value="${accountProperty.value}" th:if="${accountProperty.propertyType == 3}"
                               th:readonly="${accountProperty.isModify == 0 && accountProperty.value!= null}">
                        <!-- 日期 -->
                        <input class="col-sm-6" type="date" th:name="${accountProperty.id}"
                               th:value="${accountProperty.value}" th:if="${accountProperty.propertyType == 4}"
                               th:readonly="${accountProperty.isModify == 0 && accountProperty.value!= null}">
                        <!-- 图片 -->
                        <input class="col-sm-6" type="file" th:name="${accountProperty.id}" multiple="multiple"
                               th:value="${accountProperty.value}" th:if="${accountProperty.propertyType == 5}"
                               th:readonly="${accountProperty.isModify == 0 && accountProperty.value!= null}">
                    </div>
                </fieldset>
                <!--系统信息-->
                <fieldset>
                    <legend>系统信息</legend>
                    <div th:each="accountProperty : ${accountPropertyListForSystem}" class="col-sm-12">
                        <label class="col-sm-6" th:text="${accountProperty.name}"
                               th:if="${accountProperty.propertyType != 5}" th:id="${accountProperty.id}"></label>
                        <label class="col-sm-6" th:text="${accountProperty.name}"
                               th:if="${accountProperty.propertyType == 5}"
                               th:id="${'file' + accountProperty.id}"></label>
                        <!-- 整型 -->
                        <input class="col-sm-6" type="number" th:name="${accountProperty.id}"
                               th:value="${accountProperty.value}" th:if="${accountProperty.propertyType == 1}"
                               th:readonly="${accountProperty.isModify == 0 && accountProperty.value!= null}">
                        <!-- 浮点 -->
                        <input class="col-sm-6" type="number" step="0.01" th:name="${accountProperty.id}"
                               th:value="${accountProperty.value==null?'':accountProperty.value}"
                               th:if="${accountProperty.propertyType == 2}"
                               th:readonly="${accountProperty.isModify == 0 && accountProperty.value!= null}">
                        <!-- 字符 -->
                        <input class="col-sm-6" type="text" th:name="${accountProperty.id}"
                               th:value="${accountProperty.value}" th:if="${accountProperty.propertyType == 3}"
                               th:readonly="${accountProperty.isModify == 0 && accountProperty.value!= null}">
                        <!-- 日期 -->
                        <input class="col-sm-6" type="date" th:name="${accountProperty.id}"
                               th:value="${accountProperty.value}" th:if="${accountProperty.propertyType == 4}"
                               th:readonly="${accountProperty.isModify == 0 && accountProperty.value!= null}">
                        <!-- 图片 -->
                        <input class="col-sm-6" type="file" th:name="${accountProperty.id}" multiple="multiple"
                               th:value="${accountProperty.value}" th:if="${accountProperty.propertyType == 5}"
                               th:readonly="${accountProperty.isModify == 0 && accountProperty.value!= null}">
                    </div>
                </fieldset>
                <div class="col-xs-12" style="text-align: center; margin-top: 10px;">
                    <button type="button" class="btn btn-primary btn-sm" id="save_change"
                            onclick="save_StadningBookInfo()">提交
                    </button>
                </div>
                <script>
                    function save_StadningBookInfo() {
                        var field = "";
                        var formData = new FormData();
                        var list = [];
                        $("#default-step-2 label").each(function (i, v) {
                            var id = $(this).attr("id");
                            if (id.indexOf("file") != -1) {
                                var file = $(v).next().get(0).files[0];
                                if (file) {
                                    formData.append("file", file);
                                    formData.append("file_id", id);
                                }
                            } else {
                                var value = $(this).next().val();
                                var data = {id: id, value: value};
                                list.push(data);
                            }
                        });
                        var data = JSON.stringify(list);
                        formData.append("data", data);
                        formData.append("id", $("#id").val());
                        $.ajax({
                            url: '/monitor/save_stadning_book_info',
                            type: "post",
                            data: formData,
                            contentType: false, //必须
                            cache: false,//上传文件无需缓存
                            processData: false,//用于对data参数进行序列化处理 这里必须false
                            dataType: 'json',
                            success: function (data) {
                                alert(data['message']);
                                if (data['status'] == 1) {
                                    $("#default-step-2").find("input").removeClass("change");
                                    $("#save_change").hide();
                                }
                            }
                        });
                    }
                </script>
            </form>
        </div>

        <script th:inline="javascript">
            /*<![CDATA[*/
            var equipmentManageList = /*[[${equipmentManageList}]]*/;

            /**
             * 实时监控 模组监控 柱状图
             */

            for (var i = 0; i < equipmentManageList.length; i++) {
                show_package_info(i);
            }

            function show_package_info(idx) {
                var package_info = echarts.init(document.getElementById('package_info_' + idx));
                var xAxis = Object.keys(equipmentManageList[idx].voltAndTemp).sort();
                var yAxis1 = Object.keys(equipmentManageList[idx].voltAndTemp).sort().map(function (key) {
                    return equipmentManageList[idx].voltAndTemp[key]["MinCellVolt"];
                });
                var maxVolt = Object.keys(equipmentManageList[idx].voltAndTemp).sort().map(function (key) {
                    return equipmentManageList[idx].voltAndTemp[key]["MaxCellVolt"];
                });
                var yAxis2 = Object.keys(equipmentManageList[idx].voltAndTemp).sort().map(function (key) {
                    return (equipmentManageList[idx].voltAndTemp[key]["MaxCellVolt"] - equipmentManageList[idx].voltAndTemp[key]["MinCellVolt"]).toFixed(2);
                });
                var yAxis3 = Object.keys(equipmentManageList[idx].voltAndTemp).sort().map(function (key) {
                    return equipmentManageList[idx].voltAndTemp[key]["MinTemp"];
                });
                var maxTemp = Object.keys(equipmentManageList[idx].voltAndTemp).sort().map(function (key) {
                    return equipmentManageList[idx].voltAndTemp[key]["MaxTemp"];
                });
                var yAxis4 = Object.keys(equipmentManageList[idx].voltAndTemp).sort().map(function (key) {
                    return (equipmentManageList[idx].voltAndTemp[key]["MaxTemp"] - equipmentManageList[idx].voltAndTemp[key]["MinTemp"]).toFixed(2);
                });
                package_info.setOption({
                    title: {                // 标题
                        left: 'center',
                        text: '电压/温度 今日极值/极差曲线'
                    },
                    tooltip: {
                        trigger: "axis",
                        formatter: function (params) {
                            if (params.length === 4) {
                                var value1 = Number(params[0].value) + Number(params[1].value);
                                var value2 = Number(params[2].value) + Number(params[3].value);
                                var str = params[0].name + "<br>";
                                str += params[0].seriesName + ":&nbsp;" + params[0].value + "<br>";
                                str += "单体电压最高(V):&nbsp;" + value1.toFixed(2) + "<br>";
                                str += params[1].seriesName + ":&nbsp;" + params[1].value + "<br>";
                                str += params[2].seriesName + ":&nbsp;" + params[2].value + "<br>";
                                str += "单体温度最高(℃):&nbsp;" + value2.toFixed(2) + "<br>";
                                str += params[3].seriesName + ":&nbsp;" + params[3].value + "<br>";
                                return str;
                            }
                        }
                    },
                    legend: {               // 图例
                        data: ['单体电压最低(V)', '单体电压极差(V)', '单体温度最低(℃)', '单体温度极差(℃)'],
                        x: 'center',        //中间
                        y: '10%'
                    },
                    xAxis: [
                        {
                            type: 'category',
                            axisLabel: {
                                formatter: function (data) {
                                    return data.split(" ")[1];
                                }
                            },
                            data: xAxis
                        }
                    ],
                    yAxis: [
                        {
                            splitLine: {    //不显示坐标辅助线
                                show: false
                            },
                            name: '电压',
                            type: 'value',
                            min: 0,
                            axisLabel: {
                                formatter: '{value} V'
                            }
                        },
                        {
                            splitLine: {    //不显示坐标辅助线
                                show: false
                            },
                            name: '温度',
                            type: 'value',
                            //min:0,
                            //max: Math.max.apply(null, maxTemp),
                            axisLabel: {
                                formatter: '{value} ℃'
                            }
                        }
                    ],
                    series: [
                        {
                            name: '单体电压最低(V)',
                            type: 'bar',
                            stack: '电压',
                            color: '#F7E2A6',
                            barMaxWidth: 30,//最大宽度
                            data: yAxis1
                        },
                        {
                            name: '单体电压极差(V)',
                            type: 'bar',
                            stack: '电压',
                            barMaxWidth: 30,//最大宽度
                            data: yAxis2
                        },
                        {
                            name: '单体温度最低(℃)',
                            type: 'bar',
                            stack: '温度',
                            color: '#DAF7A6',
                            yAxisIndex: 1,
                            barMaxWidth: 30,//最大宽度
                            data: yAxis3
                        },
                        {
                            name: '单体温度极差(℃)',
                            type: 'bar',
                            stack: '温度',
                            yAxisIndex: 1,
                            barMaxWidth: 30,//最大宽度
                            data: yAxis4
                        }
                    ]
                });
            }

            /*]]>*/
        </script>
    </div>
</div>
</body>
</html>